// 标签路由模块对应的处理函数模块

// 导入 db 数据库操作模块
const db = require('../db/index')

// 向外暴露 添加标签 对应的路由处理函数
exports.addTag = function (req, res) {
  // console.log(req.body)
  // 定义 查重语句
  const selectSQL = 'select * from blog_tag where name=?'
  // 执行 SQL 语句
  db.query(selectSQL, req.body.name, (err, result) => {
    // console.log(result)
    // SQL执行错误
    if (err) return res.cc(err.message)
    // 标签已存在
    if (result.length === 1 && result[0].name === req.body.name)
      return res.cc('标签名称已存在')
    // 插入成功
    // 定义 插入 语句
    const insertSQL = 'insert into blog_tag set ?'
    // 执行插入语句
    db.query(insertSQL, req.body, (err, result) => {
      // SQL语句执行失败
      if (err) return res.cc(err.message)
      // 影响行数不唯一
      if (result.affectedRows !== 1) return res.cc('添加失败')
      // 插入成功
      res.cc('添加成功', 0)
    })
  })
}

// 获取标签列表
exports.getTagList = function (req, res) {
  // 定义查询语句
  const selectSQL = 'select * from blog_tag where is_delete=0 order by id asc'
  // 执行查询语句
  db.query(selectSQL, (err, result) => {
    // SQL语句执行失败
    if (err) return res.cc(err.message)
    // 获取成功
    // 当前页
    // console.log(result)
    let curpage = parseInt(req.query.curpage)
    // 一页显示的条数
    let pagesize = parseInt(req.query.pagesize) // 前段不传的话就用这个默认的
    // 总页码
    let sumpage = Math.ceil(result.length / pagesize)
    // 总条数
    let total = result.length
    if (curpage == '') {
      let data = result.splice(0, pagesize)
      // console.log(data)
      return res.send({
        sumpage,
        total,
        status: 0,
        msg: '获取成功',
        data
      })
    } else {
      let data = result.splice((curpage - 1) * 5, pagesize)
      return res.send({
        sumpage,
        total,
        status: 0,
        msg: '获取成功',
        data
      })
    }
  })
}

// 修改标签
exports.updateTag = function (req, res) {
  console.log(req.body)
  const updateTagSQL = 'update blog_tag set name=?, type=? where id=?'
  // 执行sql语句
  db.query(
    updateTagSQL,
    [req.body.name, req.body.type, req.body.id],
    (err, result) => {
      // SQL语句执行失败
      if (err) return res.cc(err.message)
      // 影响条数不为1
      if (result.affectedRows !== 1) return res.cc('修改失败')
      // 修改成功
      res.cc('修改成功', 0)
    }
  )
}

// 删除标签
exports.deleteTag = function (req, res) {
  console.log(req.body)
  // 定义修改的SQL语句
  const updateSQL = 'update blog_tag set is_delete=? where id=?'
  // 执行SQL语句
  db.query(updateSQL, [req.body.is_delete, req.body.id], (err, result) => {
    // 执行SQL语句失败
    if (err) return res.cc(err.message)
    // 影响条数不为1
    if (result.affectedRows !== 1) return res.cc('删除失败')
    // 删除成功
    res.cc('删除成功', 0)
  })
}
